]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
5 years agogdm: Limit verification cancellations to be conform to allowed-failures
Marco Trevisan (Treviño) [Mon, 1 Feb 2021 12:10:45 +0000 (13:10 +0100)]
gdm: Limit verification cancellations to be conform to allowed-failures

As per previous commit the user can cancel an ongoing authentication via
Escape key and that will always send the user back to the clock view in
lockscreen or user-selection view in login prompt.

However, we can be a little more permissive and don't switch view to be
able to restart the authentication without further action.

To avoid this to be abused though, we consider the user verification
cancellation via escape key to be a "soft-failure", so once the
configured "allowed-failures" gsettings value has been reached, we'd
just act as before, ignoring any further request (until we don't get
back to the user auth view).

In this way we still make brute-force attacks harder to do, while still
giving the well-behaving user some ability to fix mistakes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1622>

5 years agoauthPrompt: Handle Escape key to cancel ongoing verification
Marco Trevisan (Treviño) [Mon, 1 Feb 2021 11:52:01 +0000 (12:52 +0100)]
authPrompt: Handle Escape key to cancel ongoing verification

Escape key is supposed to cancel a verification, however if the user
already hit Enter to begin the authentication the Escape key won't work
until the verification completed.

This may be quite inconvenient when an user did a typo while writing and
wants to cancel the already started auth.

So, while authenticating (or in general while the entry is unsensitive)
give the key focus to the authpromt itself so that we can still get the
input events and cancel an user action.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1622>

5 years agoauthPrompt: Don't begin a new authentication session on lockscreen cancel event
Marco Trevisan (Treviño) [Sat, 30 Jan 2021 03:18:32 +0000 (04:18 +0100)]
authPrompt: Don't begin a new authentication session on lockscreen cancel event

When a cancel event in the user lockscreen happens we first emit a reset
signal and immediately a cancelled one.

This lead to start a new gdm worker for each enabled authentication
method and then immediately to stop it.
As per the previous commit, we don't have anymore dangling gdm workers
around, but still we should not even start a new one in such case.

So, when the user explicitly cancelled the authentication session, first
emit a cancelled event and only emit a reset event with a begin request
if we are outside the lockscreen.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1622>

5 years agogdm: Cancel user verification on UserVerifier destruction
Marco Trevisan (Treviño) [Sat, 30 Jan 2021 00:53:59 +0000 (01:53 +0100)]
gdm: Cancel user verification on UserVerifier destruction

When we cancel an user authentication via Escape key or cancel button on
AuthPrompt we reset the view and we emit a 'cancelled' signal that leads
to destroying the auth prompt and the user verifier.

However, the verifier may still have an operation in progress and its
completion may take some time (as in the case of gdm-fingerprint), but
we just leave the gdm worker running until its pam module completes
(potentially never) clearing and disposing its handle.

So, instead of just clearing the verify, actually cancel and clear it.
In case the user verifier is set, clearing the relevant data will happen
anyway as part of the cancel() call.

Ideally this would have been handled by gdm itself, but unfortunately we
can't fix it there because the verifier itself is a class generated by
gdbus-codegen, so we can't handle this automatically on disposal nor we
can automatically monitor when the caller proxy is stopped on our side.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3654
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1622>

5 years agowindowPreview: Tie icon scale to overview state
Florian Müllner [Thu, 4 Feb 2021 20:14:42 +0000 (21:14 +0100)]
windowPreview: Tie icon scale to overview state

Scaling the icons all the way from/to 0 is a relatively big transition,
which is fairly distracting when playing simultaneously for multiple
previews after reaching the WINDOW_PICKER state.

Instead, tie the scale to the overview state itself, so that the animations
runs in parallel.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1654>

5 years agoUpdate Galician translation
Fran Dieguez [Fri, 12 Feb 2021 19:10:40 +0000 (19:10 +0000)]
Update Galician translation

5 years agoUpdate Belarusian translation
Аляксей [Fri, 12 Feb 2021 16:18:19 +0000 (16:18 +0000)]
Update Belarusian translation

5 years agoUpdate Brazilian Portuguese translation
Bruno Lopes da Silva [Fri, 12 Feb 2021 15:12:52 +0000 (15:12 +0000)]
Update Brazilian Portuguese translation

5 years agoUpdate Indonesian translation
Kukuh Syafaat [Fri, 12 Feb 2021 12:01:04 +0000 (12:01 +0000)]
Update Indonesian translation

5 years agoUpdate Romanian translation
Daniel Șerbănescu [Fri, 12 Feb 2021 10:20:30 +0000 (10:20 +0000)]
Update Romanian translation

5 years agooverviewControls: Limit Dash height to 15% of the overview's
Georges Basile Stavracas Neto [Fri, 22 Jan 2021 13:36:37 +0000 (10:36 -0300)]
overviewControls: Limit Dash height to 15% of the overview's

Back when the Dash was vertical, the size of each item was calculated
solely based on the available height. After making the Dash horizontal,
this was swapped by the available width. However, when the height of the
Dash decreases, the current code results in never scaling them up ever
again.

Fix that by making ControlsManagerLayout explicitly pass the maximum Dash
sizes. Remove the 'notify::width' handler that served the same purpose.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3651

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1638>

5 years agosearchController: General cleanup
Georges Basile Stavracas Neto [Thu, 11 Feb 2021 18:45:03 +0000 (15:45 -0300)]
searchController: General cleanup

Fix style issues, such as indentation and == → ===. Simplify
getTermsForSearchString() by removing one variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1667>

5 years agoRename ViewSelector to SearchController
Georges Basile Stavracas Neto [Fri, 15 Jan 2021 12:59:58 +0000 (09:59 -0300)]
Rename ViewSelector to SearchController

Rename ViewSelector to SearchController, since ViewSelector now effectively
only handles search. Rename the file correspondingly as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1667>

5 years agoviewSelector: Cleanup pages
Georges Basile Stavracas Neto [Fri, 15 Jan 2021 12:50:39 +0000 (09:50 -0300)]
viewSelector: Cleanup pages

Remove the dummy applications page that was introduced as a temporary
step. Replace the 'page-changed' and 'page-empty' signals with a 'search-active'
boolean property.

Remove ViewSelector.ViewsPage since it's now unused, and all the page handling
mechanism. At last, since we don't use any ShellStack features anymore, simply
make it a St.Widget with a ClutterBinLayout as the layout manager.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1667>

5 years agoUpdate Ukrainian translation
Yuri Chornoivan [Thu, 11 Feb 2021 20:40:03 +0000 (20:40 +0000)]
Update Ukrainian translation

5 years agoUpdate Swedish translation
Anders Jonsson [Thu, 11 Feb 2021 19:46:04 +0000 (19:46 +0000)]
Update Swedish translation

5 years agoscreenshot: Remove shooter from sender in finally block
Jonas Dreßler [Tue, 9 Feb 2021 16:09:05 +0000 (17:09 +0100)]
screenshot: Remove shooter from sender in finally block

We do this in both the try{} and the catch{} block, so we might as well
put it into a finally{} block.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1658>

5 years agoscreenshot: Fix slow audiovisual feedback on when taking screenshot
Jonas Dreßler [Tue, 9 Feb 2021 11:51:33 +0000 (12:51 +0100)]
screenshot: Fix slow audiovisual feedback on when taking screenshot

Add a "screenshot-taken" signal from the screenshot service's internal C
implementation, and use that to trigger the camera flash visual effect
and the click sound, allowing them to run in parallel with the PNG
compression instead of waiting until the file is complete to start.

This significantly improves perceived latency on high res setups such as
4K, 5K, or dual 4K screens.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/512

Co-authored-by: Brion Vibber <bvibber@wikimedia.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1658>

5 years agoscreenshot: Replace template strings with .format()
Jonas Dreßler [Thu, 11 Feb 2021 17:30:10 +0000 (18:30 +0100)]
screenshot: Replace template strings with .format()

CI will complain when we add screenshot.js to the POTFILES in the next
commit because gettext doesn't like template strings, so make CI happy
and switch to .format() instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1658>

5 years agoFix for screenshots when pictures path is unavailable
Brion Vibber [Wed, 18 Dec 2019 22:34:45 +0000 (14:34 -0800)]
Fix for screenshots when pictures path is unavailable

On my local jhbuild setup some local stuff is not set up and
there's no pictures folder. This fixes a regression where it
blew up instead of saving to the home dir in this situation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1658>

5 years agoworkspace: Disable overlay for inactive workspaces too
Georges Basile Stavracas Neto [Fri, 5 Feb 2021 16:39:13 +0000 (13:39 -0300)]
workspace: Disable overlay for inactive workspaces too

In addition to disabling the overlay when the state is not 1,
disable it also when not in the active workspace.

Make the Workspace class track the workspace's active state,
and resync the overlays when it changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1645>

5 years agoworkspace: Always leave overview when in app grid state
Georges Basile Stavracas Neto [Fri, 5 Feb 2021 16:22:18 +0000 (13:22 -0300)]
workspace: Always leave overview when in app grid state

The behavior of workspaces is different depending on whether
the overview is in window picker state, or app grid state.

When in window picker state, clicking on adjacent workspaces
should only activate them, without hiding the overview; and
clicking on the active workspace hides the overview. When in
app grid state, clicking on a workspace must always hide the
overview.

Pass the overview adjustment to Workspace, and leave overview
if the overview state is bigger than WINDOW_PICKER.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1645>

5 years agoextensions-app: Use development profile for nightly build
Florian Müllner [Fri, 22 Jan 2021 21:16:20 +0000 (22:16 +0100)]
extensions-app: Use development profile for nightly build

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>

5 years agoextensions-app: Stop prefixing .desktop file
Florian Müllner [Fri, 22 Jan 2021 21:40:12 +0000 (22:40 +0100)]
extensions-app: Stop prefixing .desktop file

Adding prefixes like (Nightly) is discouraged nowadays in favor of
the radioactive icon overlays.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>

5 years agoextensions-app: Include commit hash in nightly version
Florian Müllner [Fri, 22 Jan 2021 21:07:42 +0000 (22:07 +0100)]
extensions-app: Include commit hash in nightly version

It's useful information for development snapshots, so include
it when building from a git checkout.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>

5 years agoextensions-app: Support building a separate Devel app
Florian Müllner [Fri, 22 Jan 2021 18:29:07 +0000 (19:29 +0100)]
extensions-app: Support building a separate Devel app

Follow the pattern used by most GNOME applications and add a profile
build option that allows building a Devel app instead of the regular
release.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>

5 years agoextensions-app: Pick up app ID from package
Florian Müllner [Fri, 22 Jan 2021 21:08:41 +0000 (22:08 +0100)]
extensions-app: Pick up app ID from package

This will allow us to build different applications from the
same sources (namely "Extensions" and "Extensions Nightly").

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>

5 years agoworkspacesView: Interpolate against relative workspace boxes
Georges Basile Stavracas Neto [Tue, 2 Feb 2021 19:34:59 +0000 (16:34 -0300)]
workspacesView: Interpolate against relative workspace boxes

The overview transition consists of getting the initial and final
states of the overview adjustment, derivating various other internal
states from them (such as the fit mode, opacities, translations, etc),
and finally interpolating the allocation boxes.

When interpolating between the fit mode, WorkspacesView uses the current
allocation box to derivate the SINGLE and ALL fit mode boxes. However,
that creates a curved path during overview transitions. What we really
want to do here is calculate the fit mode box relative to the corresponding
overview state. For example:

 +----------------+----------+------------------------+
 | Overview State | Fit Mode | Workspaces geometry    |
 +----------------+----------+------------------------+
 | HIDDEN         | SINGLE   | Cover entire screen    |
 | WINDOW PICKER  | SINGLE   | Between minimap & Dash |
 | APP GRID       | ALL      | 15% screen height      |
 +----------------+----------+------------------------+

Using the table above as the reference, when the overview transitions
between WINDOW PICKER and APP GRID, we must interpolate between
(SINGLE fit mode @ between minimap & Dash) and (ALL fit mode @ 15% screen
height). That way, we always interpolate the final boxes, which corrects
the odd path that workspaces follow during this transition.

Make the WorkspacesView of the primary monitor use these cached boxes
when the overview is in the middle of a transition, and the fit modes of
the initial and final state differ, to calculate the workspaces positions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls: Cache workspaces boxes
Georges Basile Stavracas Neto [Wed, 10 Feb 2021 21:09:04 +0000 (18:09 -0300)]
overviewControls: Cache workspaces boxes

Next commit will need to access the allocated workspaces boxes, so
cache them at allocation time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agotheme: Adjust app grid visuals
Georges Basile Stavracas Neto [Fri, 15 Jan 2021 18:23:50 +0000 (15:23 -0300)]
theme: Adjust app grid visuals

So that at least in 1366x768 it doesn't switch to 32px icons.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoworkspacesView: Use calculated workspace state for progress
Georges Basile Stavracas Neto [Fri, 15 Jan 2021 18:58:33 +0000 (15:58 -0300)]
workspacesView: Use calculated workspace state for progress

It works just like before, except that this has the nice side effect
of not changing the workspace mode when leaving the overview from
the app grid state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls: Make AppDisplay rise from the bottom
Georges Basile Stavracas Neto [Wed, 20 Jan 2021 22:25:13 +0000 (19:25 -0300)]
overviewControls: Make AppDisplay rise from the bottom

It makes more sense in a spatial overview that the app grid
comes and goes to somewhere in the screen, instead of fading
in and out into the void.

Make the app grid rise from the bottom of the screen.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoworkspacesView/workspacesDisplay: Remove parent opacity hack
Georges Basile Stavracas Neto [Fri, 15 Jan 2021 11:00:50 +0000 (08:00 -0300)]
workspacesView/workspacesDisplay: Remove parent opacity hack

Now, we set WorkspacesDisplay's opacity directly, so there's no
need to have this parent → child glue code anymore. Remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls: Incorporate ActivitiesContainer
Georges Basile Stavracas Neto [Thu, 14 Jan 2021 23:23:15 +0000 (20:23 -0300)]
overviewControls: Incorporate ActivitiesContainer

Move AppDisplay, WorkspacesDisplay, and ThumbnailsBox from ViewSelector to
ControlsManager. This allows to always allocate the correct size for AppDisplay,
and will enable for a plethora of further improvements. The end goal is to
completely remove ViewSelector, and let ControlsManager handle the layout of
everything that's visible in the overview.

For now, replace the apps page with a dummy actor in ViewSelector.

Adjust various callers around the codebase to not access the ViewSelector
directly from the overview anymore.

Bind the opacity of the primary workspace to WorkspaceDisplay's opacity. This
allows removing the parent opacity hack in place, which will be done by the
next commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls: Use specialized class for Overview adjustment
Georges Basile Stavracas Neto [Fri, 15 Jan 2021 18:28:23 +0000 (15:28 -0300)]
overviewControls: Use specialized class for Overview adjustment

It'll be useful for the next commits to have a handy 'getState' method
that calculates the progress of any particular transition.

Move the St.Adjustment to a specialized subclass.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Remove pinch gestures
Georges Basile Stavracas Neto [Tue, 5 Jan 2021 13:38:33 +0000 (10:38 -0300)]
viewSelector: Remove pinch gestures

It'll be replaced by a 3 finger gesture that sticks to fingers
and progressively transitions between states.

Remove both pinch and touchpad pinch gestures from ViewSelector.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Drop edge drag gesture
Georges Basile Stavracas Neto [Tue, 5 Jan 2021 13:33:59 +0000 (10:33 -0300)]
viewSelector: Drop edge drag gesture

It doesn't use any ViewSelector's API anymore, and its functionality will be taken
over by the 3 finger gesture.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Move 'toggle-applications-view' to ControlsManager
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 20:41:54 +0000 (17:41 -0300)]
viewSelector: Move 'toggle-applications-view' to ControlsManager

Move the shortcut handling into ControlsManager, and reimplement
the callback in such a way that it behaves correctly with the
current overview machinery.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Remove showApps()
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 20:28:44 +0000 (17:28 -0300)]
viewSelector: Remove showApps()

Now that Overview is able to ease into any state, be it window
picker or app grid, we can move this ViewSelector method to
Overview itself, which is its rightful place to live.

Remove ViewSelector.showApps(), and make all callers call
Main.overview.show(ControlsState.APP_GRID). Also make sure the
show apps button is correctly toggled.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverivew: Propagate target state when animating to overview
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 20:19:37 +0000 (17:19 -0300)]
overivew: Propagate target state when animating to overview

Next commits will requires ControlsManager to animate to different
states, depending on how Overview is called. Add a new 'state'
parameter to ControlsManager's, and OverviewActor's animateToOverview,
and Overview.show().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Move 'toggle-overview' shortcut to overview
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 20:10:36 +0000 (17:10 -0300)]
viewSelector: Move 'toggle-overview' shortcut to overview

It is handled there already, there's no reason for it to continue
to be in ViewSelector.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoworkspace, workspacesView: Cleanup animation methods
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 19:17:17 +0000 (16:17 -0300)]
workspace, workspacesView: Cleanup animation methods

Remove Workspace.zoomTo/FromOverview(), they're unused now. Rename
everything up to ControlsManager to prepareToEnter/LeaveOverview(),
since these classes don't run the animation anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoworkspacesView: Derive workspace mode from overview state
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 19:06:34 +0000 (16:06 -0300)]
workspacesView: Derive workspace mode from overview state

WorkspacesView uses the floating layout when the overview is in window
picker mode, and the session layout when the overview is in app grid
mode. Up until now, the fit mode adjustment was used to derive the
workspace mode, but it is incomplete as it doesn't have the full range
of workspace states.

Make ViewSelector cascade the overview adjustment to WorkspacesDisplay,
and use the overview adjustment itself to derive the workspace mode.

Extra workspaces don't have to account for the fit mode, and thus are
basically a clamp(state, 0, 1) of the overview state. However, don't
call animateTo/FromOverview() anymore, since they ease the workspace
mode adjustment.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoworkspacesView: Add primary view to workspaces display
Florian Müllner [Fri, 26 Jun 2020 16:38:28 +0000 (18:38 +0200)]
workspacesView: Add primary view to workspaces display

Boy, does this commit feel good.

While the workspaces view on the primary monitor *appears* as part of
the overall overview hierarchy, this hasn't actually been the case
until now. We synchronized its size and (stage) position to match
the workspaces display, but actually kept in a separate layer for
the transitions to and from the overview.

But now that the new layout manager slides out completely during the
overview transitions, the workspaces display starts out covering the
entire work area, which is exactly what we need for the transition.

So finally stop faking it, and actually make the primary workspaces
view a child of the workspaces display.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverview: Don't fade OverviewActor
Georges Basile Stavracas Neto [Fri, 1 Jan 2021 17:18:18 +0000 (14:18 -0300)]
overview: Don't fade OverviewActor

Now that the workspace display is properly allocated for each frame,
we don't want to fade the entire overview anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls: Ease main adjustment when animating to/from overview
Georges Basile Stavracas Neto [Fri, 1 Jan 2021 17:00:30 +0000 (14:00 -0300)]
overviewControls: Ease main adjustment when animating to/from overview

Instead of delegating it to ViewSelector, make the transition to and from
overview ease the main state adjustment.

This commit temporarily breaks these animations, but on the other hand
introduces an important feature: ViewSelector is always allocated to the
actual size. This will finally allow for adding WorkspacesView as a child
of WorkspacesDisplay, and finally remove the actual geometry hack, which
is what next commit is about.

This commit also effectively reverts b64103efc.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverview: Reorganize animateTo/FromOverview()
Georges Basile Stavracas Neto [Fri, 1 Jan 2021 16:39:07 +0000 (13:39 -0300)]
overview: Reorganize animateTo/FromOverview()

Instead of directly accessing ViewSelector and calling these methods
there, cascade the calls to OverviewActor, ControlsManager, and finally
ViewSelector. Also move the opacity transition to OverviewActor.

This commit has no functional change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Use state adjustment for apps page
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 20:45:09 +0000 (17:45 -0300)]
viewSelector: Use state adjustment for apps page

Currently, ActivitiesContainer reacts to showAppsButton and
transitions between app grid and window picking states on
its own. In the future, we want full control over this.

ControlsManager already has a state adjustment that represents
all possible overview states. Propagate this adjustment up to
ActivitiesContainer, and use it to drive the transition.

This requires moving the callback to the showAppsButton to
ControlsManager, since now it control the state adjustment
itself, not ActivitiesContainer's adjustment.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls: Use adjustment to control layout
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 20:32:03 +0000 (17:32 -0300)]
overviewControls: Use adjustment to control layout

Right now, the adjustment is fixed at ControlsState.WINDOW_PICKER,
but soon it will be propagated to ViewSelector to control the
transitions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls/controlsManager: Use a custom layout manager
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 20:16:18 +0000 (17:16 -0300)]
overviewControls/controlsManager: Use a custom layout manager

In the future, we want to tightly control the state of the
layout throught gestures, which requires hooking everything
together with adjustments. This is the first step in this
direction.

Add a new custom layout manager for ControlsManager that
allocates the search entry, the view selector, and the Dash,
vertically.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverview: Move search entry to ControlsManager
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 20:02:14 +0000 (17:02 -0300)]
overview: Move search entry to ControlsManager

Next commit will tie all these widgets up with a single
layout manager, and we need to control the search entry
position.

Move it to OverviewControls.ControlsManager.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoui/windowManager: Fix horizontal scrolling when smooth events are used
Pascal Nowack [Thu, 11 Feb 2021 14:17:22 +0000 (15:17 +0100)]
ui/windowManager: Fix horizontal scrolling when smooth events are used

Currently, gnome-shell uses the wrong scrolling direction for
horizontal scrolling events.
When dx < 0 for a smooth scroll event, then the scrolling direction is
supposed to be Clutter.ScrollDirection.LEFT, instead of
Clutter.ScrollDirection.RIGHT, as dx is smaller than 0.

Fix this issue by swapping the values LEFT and RIGHT.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1665>

5 years agopolkitAgent: Ensure cleanup if dialog wasn't shown
Florian Müllner [Tue, 9 Feb 2021 23:10:03 +0000 (00:10 +0100)]
polkitAgent: Ensure cleanup if dialog wasn't shown

It is possible for an initiated session to complete without
a request if polkit can authenticate the action without user
input. We fail to clean up after ourselves in that case, as
the cleanup is done after the dialog is closed.

The dialog can still be shown when the code that hides existing
dialogs while the screen is locked shows it on unlock. But as
the session was closed, the dialog is now defunct and cannot
be dismissed by the user.

Fix this by running the cleanup on close() when the dialog
wasn't shown.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3701

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1662>

5 years agoextensions-app: Add description tooltip to rows
Leleat [Wed, 10 Feb 2021 01:18:19 +0000 (02:18 +0100)]
extensions-app: Add description tooltip to rows

... to allow showing the full description in case the label is ellipsized.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1663>

5 years agoUpdate Portuguese translation
Hugo Carvalho [Wed, 10 Feb 2021 19:04:34 +0000 (19:04 +0000)]
Update Portuguese translation

5 years agodash: Re-fittsify
Florian Müllner [Tue, 9 Feb 2021 18:57:55 +0000 (19:57 +0100)]
dash: Re-fittsify

Now that the dash is no longer attached to a screen edge, it lost
its "infinite width" (Fitts' law). Restore it by moving the visible
bar into a separate layer underneath the actual icons, extend the
icons to the bottom edge, and replace the margin around the dash
with padding inside the icons.

https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/89

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1660>

5 years agodash: Reindent some more code
Florian Müllner [Tue, 9 Feb 2021 21:01:45 +0000 (22:01 +0100)]
dash: Reindent some more code

Again we're about to touch it.

https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/89

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1660>

5 years agooverviewControls: Remove DashFader
Florian Müllner [Tue, 9 Feb 2021 16:50:29 +0000 (17:50 +0100)]
overviewControls: Remove DashFader

By now there is so little left of the old sliding controls that the
split from the actual dash makes little sense.

https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/89

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1660>

5 years agostylesheet: Increase app dropshadows
Jakub Steiner [Thu, 4 Feb 2021 13:16:00 +0000 (14:16 +0100)]
stylesheet: Increase app dropshadows

Increase the app icon dropshadow to separate the icon from the window thumbnail.
The shadow change is global, but due to perfomance implications, the icon-dropshadow
class is only used on the thumbnail view.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3670

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1656>

5 years agodash: Consider additions for separator visibility
Florian Müllner [Tue, 9 Feb 2021 20:48:39 +0000 (21:48 +0100)]
dash: Consider additions for separator visibility

The children variable holds the icons that were originally in
the dash. For the separator visibility, we should consider the
icons that are in the dash after the update, so we must consider
additions as well as removals.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1659>

5 years agoUpdate Slovenian translation
Matej Urbančič [Tue, 9 Feb 2021 20:44:37 +0000 (20:44 +0000)]
Update Slovenian translation

5 years agoUpdate Catalan translation
Jordi Mas [Tue, 9 Feb 2021 19:28:34 +0000 (20:28 +0100)]
Update Catalan translation

5 years agoUpdated Spanish translation
Daniel Mustieles [Tue, 9 Feb 2021 15:13:59 +0000 (16:13 +0100)]
Updated Spanish translation

5 years agoworkspacesView: Fix off-by-one error
Abderrahim Kitouni [Tue, 9 Feb 2021 09:17:29 +0000 (10:17 +0100)]
workspacesView: Fix off-by-one error

This is basically 9f0e7632a6 ported over ed1170906b which was dropped this
fix when copying things around.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1655>

5 years agoUpdate Romanian translation
Florentina Mușat [Tue, 9 Feb 2021 09:31:30 +0000 (09:31 +0000)]
Update Romanian translation

5 years agoUpdate Ukrainian translation
Yuri Chornoivan [Tue, 9 Feb 2021 06:47:34 +0000 (06:47 +0000)]
Update Ukrainian translation

5 years agologinDialog: Fill UserListItem layout to show the timed login indicator
Marco Trevisan (Treviño) [Fri, 5 Feb 2021 15:58:49 +0000 (16:58 +0100)]
loginDialog: Fill UserListItem layout to show the timed login indicator

When the timed indicator is shown the UserListItem layout should fill
so that the timed indicator can expand to use the whole item space.

So, always use the default value for x-align that will make it to fill
the available space without causing any regression when the timed
indicator is hidden.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3675
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1644>

5 years agoUpdate Galician translation
Fran Dieguez [Mon, 8 Feb 2021 22:45:32 +0000 (22:45 +0000)]
Update Galician translation

5 years agoworkspacesView: Enable long swipes
Alexander Mikhaylenko [Sun, 7 Feb 2021 20:06:02 +0000 (01:06 +0500)]
workspacesView: Enable long swipes

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1647>

5 years agoswipeTracker: Add allowLongSwipes property
Alexander Mikhaylenko [Sun, 7 Feb 2021 20:02:58 +0000 (01:02 +0500)]
swipeTracker: Add allowLongSwipes property

Since we now have the ability to support swiping through multiple pages,
expose it as a property.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1647>

5 years agoswipeTracker: Rework end point calculation
Alexander Mikhaylenko [Sun, 7 Feb 2021 18:39:54 +0000 (23:39 +0500)]
swipeTracker: Rework end point calculation

Previously we used a bunch of heuristics for this. We checked if velocity
was directed towards the nearest snap point and its value was larger than
a threshold. If it is, we completed the swipe, otherwise we cancelled it.

This was good enough at the time, because this code was originally written
for back/forward swipe. Since then, the swipe tracker was extended to
handle arbitrary snap points and not just 0 and 1, or -1 and 0, depending
on text direction. After that it was iterated on, but never significantly
redone.

This worked well enough, but had two problems:

1. In some cases, notably overview, it may be wanted to be able to swipe
   through multiple pages at once. This wasn't really possible because we
   always picked the adjacent snap point.

2. Since we can't do that well, we want to restrict swipes to one page at a
   time. It was done in a rather hacky way by clamping the position into
   [-1, 1] range from the place where we started the swipe. This works
   if we start the swipe from idle position, but if an animation was
   already going, the range would be clamped to arbitrary values, and very
   likely containing only one snap point, which we already swiped past at
   this point. In this case, finishing the swipe would cancel it regardless
   of velocity. This means that if one tries to quickly move through
   carousel pages via swiping, half of the swipes will be inexplicably
   cancelled.

We'll use the deceleration formula from
https://medium.com/@esskeetit/how-uiscrollview-works-e418adc47060#10ce
to calculate then projection point, then pick the nearest snap point and
calculate the duration as we did before. It works well enough for short
distances, but has two problems:

1. It caps the maximum distance at a pretty low value - about 5 pages in my
testing.

2. With how we pick the nearest snap point, it's too easy to accidentally
cancel the swipe,

To combat the first problem, we can modify the curve: only use linear
function at small distances, and smoothly transition it to a parabola
further.

For the second problem we can add two special cases: first, if the swipe
ended up between the initial snap point and the next one, we always prefer
the latter. Second, a good old velocity threshold for cancelling.

We'll also use a slightly smaller deceleration value for touchpad: 0.997
instead of 0.998.

Now that we can pick any snap point, the [-1, 1] clamping doesn't make
sense anymore, so instead let's replace it with a more flexible
mechanism: if we're near a snap point, pick its adjacent snap points.
Otherwise, take the two nearest snap points, and take their adjacent
snap points. This way we have 3 snap points to choose from when
starting a swipe from an idle position, and 4 if we start during an
ongoing transition.

This way, if we've just swiped from snap point n to n+1, the transition
will pick snap points n-1, n, n+1, n+2 and if we swipe again, we will
likely land on n+2. During that transition, if we swipe again, it will
likely have already passed the snap point n+1, so this time the available
snap points will be n, n+1, n+2, n+3, so we can swipe again and it will
still complete, and so on.

This will make it easy to allow multi-page swipes as well, by just
removing the clamping.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1647>

5 years agoswipeTracker: Calculate velocity using scroll history
Alexander Mikhaylenko [Sun, 7 Feb 2021 17:46:49 +0000 (22:46 +0500)]
swipeTracker: Calculate velocity using scroll history

In some cases we may get anevent with very low delta at the end of the
swipe. While we can't completely ignore them, we can smooth them using a
scroll history, similarly to what GTK kinetic scrolling does: keep track
of the last 150ms of events, and sum their deltas when calculating the
velocity.

The logic is based on what GTK does in GtkGestureSwipe and
GtkEventControllerScroll.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1647>

5 years agoUpdate Swedish translation
Anders Jonsson [Mon, 8 Feb 2021 21:50:37 +0000 (21:50 +0000)]
Update Swedish translation

5 years agofingerprint: Show different strings depending on type
Razze [Sat, 30 Jan 2021 19:14:04 +0000 (20:14 +0100)]
fingerprint: Show different strings depending on type

Fprintd knows if the fingerprint reader is of the swipe or press type. We now show different labels depending on that.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2011

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1572>

5 years agofingerprint: Use makeProxyWrapper for fprintManager
Razze [Sat, 30 Jan 2021 19:10:03 +0000 (20:10 +0100)]
fingerprint: Use makeProxyWrapper for fprintManager

The reason this wasn't using the Gio.DBus.makeProxyWrapper() convenience API is that it passes custom flags to the proxy, and that wasn't supported by the wrapper at the time.

As this is now possible, this commit migrates us to the new API.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1572>

5 years agost: Test for :insensitive styling
Florian Müllner [Sun, 7 Feb 2021 22:21:55 +0000 (23:21 +0100)]
st: Test for :insensitive styling

Commit 473e77e2c5a fixed applying the :insensitive pseudo class to
initially unreactive widgets, and adjusted the style test to work
with that.

In hindsight, we can do better than just making the test work, and
include a test case for the :insensitive styling as well (namely
the issue the previous commit was fixing).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1649>

5 years agoci: Bump mutter image
Florian Müllner [Mon, 8 Feb 2021 14:20:26 +0000 (15:20 +0100)]
ci: Bump mutter image

Needed for mutter's bumped pipewire dependency.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1650>

5 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Mon, 8 Feb 2021 11:33:54 +0000 (11:33 +0000)]
Update Brazilian Portuguese translation

5 years agorunDialog: Trim input before processing
Lucas Werkmeister [Sun, 7 Feb 2021 18:41:36 +0000 (19:41 +0100)]
runDialog: Trim input before processing

This way, whitespace-only (nonempty) input gets the same treatment of
not being added to the history (see previous commit), which seems nice.

Part of https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3183.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1442>

5 years agorunDialog: Don’t add empty input to history
Lucas Werkmeister [Sun, 7 Feb 2021 18:38:40 +0000 (19:38 +0100)]
runDialog: Don’t add empty input to history

If the input is empty, there’s no point in adding it to the history –
it’ll just be mildly annoying when the user has to skip past it next
time they consult the history.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3183.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1442>

5 years agorunDialog: Don’t treat empty input specially
Lucas Werkmeister [Sun, 7 Feb 2021 18:12:57 +0000 (19:12 +0100)]
runDialog: Don’t treat empty input specially

Let empty input result in an error, just like other invalid commands
(bad syntax, nonempty whitespace, etc.). GLib already has an error
message “Text was empty (or contained only whitespace)” which it shows
for whitespace-only input, so letting that message apply also to empty
input makes sense.

This requires some tweaks further down the file to avoid interpreting
empty input as an empty path (relative to the home directory) and then
opening the home directory.

Part of https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3183.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1442>

5 years agost/widget: Fix applying :insensitive to initially unreactive widgets
Florian Müllner [Sun, 7 Feb 2021 22:21:55 +0000 (23:21 +0100)]
st/widget: Fix applying :insensitive to initially unreactive widgets

We are applying the :insensitive pseudo class to unreactive widgets,
or at least we are supposed to. As we currently only update the style
on notify, we don't apply it to initially unreactive widgets.

This was covered up partially until recently when Clutter started to
use G_PARAM_EXPLICIT_NOTIFY. Before that, the notify handler would run
when explicitly setting :reactive to FALSE at construction time.

Make sure we always apply the pseudo class correctly by updating it
after construct properties have been set.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3685

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1648>

5 years agoshell-util: Use early-return in shell_util_get_week_start()
TerraAr [Fri, 18 Dec 2020 17:54:04 +0000 (17:54 +0000)]
shell-util: Use early-return in shell_util_get_week_start()

Cleanup shell_util_get_week_start() a little bit and use an early-return
instead of setting the week_start variable to 0.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1546>

5 years agoUpdate Romanian translation
Daniel Șerbănescu [Sun, 7 Feb 2021 14:08:24 +0000 (14:08 +0000)]
Update Romanian translation

5 years agost/theme-node-drawing: Fix inner shadow fast path condition
Sebastian Keller [Sat, 6 Feb 2021 23:23:04 +0000 (00:23 +0100)]
st/theme-node-drawing: Fix inner shadow fast path condition

We want to use the fast path of filling the entire area if either the
left and right shadows would overlap or the top and bottom shadows. The
latter check was wrong due to a typo resulting in the regular path
being used in some cases it couldn't (and shouldn't) handle.

This was causing the inset shadow used to highlight panel buttons to
not appear for buttons above a certain width.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1646>

5 years agoUpdate Galician translation
Fran Dieguez [Sun, 7 Feb 2021 00:07:52 +0000 (00:07 +0000)]
Update Galician translation

5 years agoUpdate Portuguese translation
Hugo Carvalho [Sat, 6 Feb 2021 21:47:55 +0000 (21:47 +0000)]
Update Portuguese translation

5 years agoUpdated Czech translation
Marek Černocký [Sat, 6 Feb 2021 08:37:37 +0000 (09:37 +0100)]
Updated Czech translation

5 years agoUpdated Czech translation
Marek Černocký [Sat, 6 Feb 2021 07:28:11 +0000 (08:28 +0100)]
Updated Czech translation

5 years agoUpdate Ukrainian translation
Yuri Chornoivan [Fri, 5 Feb 2021 20:23:04 +0000 (20:23 +0000)]
Update Ukrainian translation

5 years agoUpdate Swedish translation
Anders Jonsson [Fri, 5 Feb 2021 18:42:39 +0000 (18:42 +0000)]
Update Swedish translation

5 years agodata: Fix grammar and wording in new GSettings key
Bastien Nocera [Fri, 5 Feb 2021 14:33:00 +0000 (15:33 +0100)]
data: Fix grammar and wording in new GSettings key

The description for the 'welcome-dialog-last-shown-version' key
must have been written quite late in the day, as it's full of grammar
mistakes, typos and British English.
*sips coffee*
I can say that, because I wrote it.
*sips coffee*
Anyway, that might be a bit better.

*sips coffee* and Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1641

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1641>

5 years agomain: Show welcome dialogue on first start
Bastien Nocera [Mon, 1 Feb 2021 12:31:41 +0000 (13:31 +0100)]
main: Show welcome dialogue on first start

This hooks the recently added welcome dialogue to be shown the first
time a new session is started, and disabled after that.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3632
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1619>

5 years agoutil: Add a GNOME version comparison function
Bastien Nocera [Thu, 4 Feb 2021 11:26:15 +0000 (12:26 +0100)]
util: Add a GNOME version comparison function

Add a function that can compare GNOME versions, including the new naming
scheme for GNOME 40 and later.

Used in https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3632

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1619>

5 years agowelcomeDialog: Add “welcome” dialog
Bastien Nocera [Mon, 1 Feb 2021 09:20:48 +0000 (10:20 +0100)]
welcomeDialog: Add “welcome” dialog

As designed at:
https://gitlab.gnome.org/Teams/Design/os-mockups/-/blob/master/greeter/welcome-dialog.png

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3632
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1619>

5 years agotheme: Space dash items
Jakub Steiner [Thu, 4 Feb 2021 17:27:30 +0000 (18:27 +0100)]
theme: Space dash items

- don't nuke separator
- space appropriately

Fixes a fix for https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3640

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1636>

5 years agotheme: Legible thumbnail close button
Jakub Steiner [Thu, 4 Feb 2021 17:04:09 +0000 (18:04 +0100)]
theme: Legible thumbnail close button

- prominent close button
- legible yet stylish thumbnail labels

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3669

5 years agodata: Update custom close icon
Florian Müllner [Thu, 4 Feb 2021 23:50:34 +0000 (00:50 +0100)]
data: Update custom close icon

The existing asset has a nice black rectangle on top of the
intended shape.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1640>

5 years agodata: Rename custom close icon
Florian Müllner [Thu, 4 Feb 2021 23:47:06 +0000 (00:47 +0100)]
data: Rename custom close icon

Resource icons are added to the fallback icon theme, so they won't
get used if a matching icon is found in the configured theme.

That includes fallback names, so Adwaita's "window-close-symbolic"
takes precedence over "window-close-24-symbolic" in hicolor.

Fix this by using a custom name for a custom icon.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1640>

5 years agodata: Move custom close icon into actions/
Florian Müllner [Thu, 4 Feb 2021 23:17:12 +0000 (00:17 +0100)]
data: Move custom close icon into actions/

Adwaita uses ui/ for the corresponding icon, but GTK treats icons
from a resource path as part of the hicolor theme that doesn't
have such a subdir. And as GTK determines subdirs by enumerating
the theme directory, any subdirs that only exist in the resource
are ignored, whoops.

Make sure the icon can be found by moving it to a standard subdir.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1640>